//package nancal.mp.mvc.devops
//
//import nancal.mp.client.python.JenkinsPythonClient
//import nancal.mp.db.mongo.entity.dev.*
//import nancal.mp.db.mongo.entity.dev.*
//import nancal.mp.db.mongo.mor
//
//import nbcp.myoql.db.mongo.*
//import nbcp.web.LoginUser
//import nbcp.web.UserName
//import org.springframework.beans.factory.annotation.Autowired
//import org.springframework.web.bind.annotation.PostMapping

//import org.springframework.web.bind.annotation.RequestMapping

//import org.springframework.web.bind.annotation.*

//import java.lang.RuntimeException
//import javax.servlet.http.HttpServletRequest
//import javax.xml.parsers.DocumentBuilderFactory
//
//
//@RequestMapping("/dev/jenkins-python")
//@RestController
//class JenkinsPythonController {
//
//    @Autowired
//    lateinit var jenkinsPythonClient: JenkinsPythonClient
//
//    data class QueryModel(
//            var git_id: String = "",
//            var folder: String = "",
//            var env_name: String = ""
//    ) {
//
//        var git_branch: String = ""
//            get() {
//                if (field.contains(",")) {
//                    return field.split(",").sortedBy { it.length }.first()
//                }
//                return field;
//            }
//            set(v) {
//                if (v.contains(",")) {
//                    field = v.split(",").sortedBy { it.length }.first()
//                    return;
//                }
//                field = v
//            }
//    }
//
//    @PostMapping("/gen")
//    fun gen_java(
//        @org.springframework.web.bind.annotation.RequestBody query: QueryModel,
//        request: HttpServletRequest
//    ): ApiResult<String> {
//        if (query.git_id.isEmpty()) {
//            return ApiResult.error("找不到参数 git_id")
//        }
//
//        var gitData = mor.dev.gitData.queryById(query.git_id).toEntity();
//        if (gitData == null) {
//            return ApiResult.error("找不到 git 数据")
//        }
//
//        val productLineInfo = mor.dev.productLine.queryByCode(gitData.productLine.code).toEntity()
//        if (productLineInfo == null) {
//            return ApiResult.error("找不到 ${gitData.productLine.code} 产品线")
//        }
//
//
//        var appFolder = gitData.folders.first { it.path == query.folder };
//        var gitBuildInfo = JenkinsBuildInfo();
//        gitBuildInfo.buildFolder = appFolder.path
//        gitBuildInfo.appName = appFolder.name
//        gitBuildInfo.gitBranch = query.git_branch
//        gitBuildInfo.appCnName = appFolder.cnname
//        gitBuildInfo.jobName = gitData.get_job_name( gitBuildInfo.appName);
//        gitBuildInfo.envName = query.env_name;
//
//
//        jenkinsPythonClient.build(
//                productLineInfo.k8s_ns.AsString("default"),
//                query.env_name,
//                request.UserName,
//                gitBuildInfo.gitBranch,
//                gitData.url,
//                gitBuildInfo.buildFolder,
//                gitBuildInfo.appName,
//                gitData.language.toString().lowercase(),
//                gitData.languageVersion,
//                gitBuildInfo.appCnName.AsString(gitBuildInfo.appName).replace(" ", ""),
//                gitData.productLine.code,
//                gitData.productLine.name
//        )
//
//
//        //日志
//        var jenkinsLog = JenkinsLog();
//
//        jenkinsLog.createBy = request.LoginUser.AsIdName();
//        jenkinsLog.gitData = gitData;
//        jenkinsLog.buildInfo = gitBuildInfo;
//        mor.dev.jenkinsLog.doInsert(jenkinsLog);
//        return ApiResult();
//    }
//
//    private fun getPackageJsonName(content: String): String {
//        return content.FromJson<JsonMap>()!!.getStringValue("name")!!
//    }
//
//    private fun getPomName(content: String): String {
//        val parse = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(content.byteInputStream())
//        var index = -1
//        while ((index + 1) < parse.documentElement.childNodes.length) {
//            index++
//            var item = parse.documentElement.childNodes.item(index)
//            if (item.nodeName == "artifactId") {
//                return item.textContent
//            }
//        }
//
//        throw RuntimeException("找不到 artifactId")
//    }
//}
